/*******************************************************************************
 * Copyright 2014 United States Government as represented by the
 * Administrator of the National Aeronautics and Space Administration.
 * All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/
/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package gov.nasa.ensemble.dictionary.provider;

import gov.nasa.ensemble.dictionary.util.DictionaryAdapterFactory;

import java.util.ArrayList;
import java.util.Collection;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.edit.provider.ChangeNotifier;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IChangeNotifier;
import org.eclipse.emf.edit.provider.IDisposable;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.INotifyChangedListener;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

/**
 * This is the factory that is used to provide the interfaces needed to support Viewers.
 * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
 * The adapters also support Eclipse property sheets.
 * Note that most of the adapters are shared among multiple instances.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public class DictionaryItemProviderAdapterFactory extends DictionaryAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
	/**
	 * This keeps track of the root adapter factory that delegates to this adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComposedAdapterFactory parentAdapterFactory;

	/**
	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IChangeNotifier changeNotifier = new ChangeNotifier();

	/**
	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Collection<Object> supportedTypes = new ArrayList<Object>();

	/**
	 * This constructs an instance.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public DictionaryItemProviderAdapterFactory() {
		supportedTypes.add(IEditingDomainItemProvider.class);
		supportedTypes.add(IStructuredItemContentProvider.class);
		supportedTypes.add(ITreeItemContentProvider.class);
		supportedTypes.add(IItemLabelProvider.class);
		supportedTypes.add(IItemPropertySource.class);
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.EActivityDictionary} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EActivityDictionaryItemProvider eActivityDictionaryItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.EActivityDictionary}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEActivityDictionaryAdapter() {
		if (eActivityDictionaryItemProvider == null) {
			eActivityDictionaryItemProvider = new EActivityDictionaryItemProvider(this);
		}

		return eActivityDictionaryItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.EActivityDef} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EActivityDefItemProvider eActivityDefItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.EActivityDef}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEActivityDefAdapter() {
		if (eActivityDefItemProvider == null) {
			eActivityDefItemProvider = new EActivityDefItemProvider(this);
		}

		return eActivityDefItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.EActivityGroupDef} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EActivityGroupDefItemProvider eActivityGroupDefItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.EActivityGroupDef}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEActivityGroupDefAdapter() {
		if (eActivityGroupDefItemProvider == null) {
			eActivityGroupDefItemProvider = new EActivityGroupDefItemProvider(this);
		}

		return eActivityGroupDefItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.EChoice} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EChoiceItemProvider eChoiceItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.EChoice}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEChoiceAdapter() {
		if (eChoiceItemProvider == null) {
			eChoiceItemProvider = new EChoiceItemProvider(this);
		}

		return eChoiceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.EAttributeParameter} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EAttributeParameterItemProvider eAttributeParameterItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.EAttributeParameter}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEAttributeParameterAdapter() {
		if (eAttributeParameterItemProvider == null) {
			eAttributeParameterItemProvider = new EAttributeParameterItemProvider(this);
		}

		return eAttributeParameterItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.EReferenceParameter} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EReferenceParameterItemProvider eReferenceParameterItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.EReferenceParameter}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEReferenceParameterAdapter() {
		if (eReferenceParameterItemProvider == null) {
			eReferenceParameterItemProvider = new EReferenceParameterItemProvider(this);
		}

		return eReferenceParameterItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.EActivityRequirement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EActivityRequirementItemProvider eActivityRequirementItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.EActivityRequirement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEActivityRequirementAdapter() {
		if (eActivityRequirementItemProvider == null) {
			eActivityRequirementItemProvider = new EActivityRequirementItemProvider(this);
		}

		return eActivityRequirementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.EClaimableResourceDef} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EClaimableResourceDefItemProvider eClaimableResourceDefItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.EClaimableResourceDef}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEClaimableResourceDefAdapter() {
		if (eClaimableResourceDefItemProvider == null) {
			eClaimableResourceDefItemProvider = new EClaimableResourceDefItemProvider(this);
		}

		return eClaimableResourceDefItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.EClaimableEffect} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EClaimableEffectItemProvider eClaimableEffectItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.EClaimableEffect}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEClaimableEffectAdapter() {
		if (eClaimableEffectItemProvider == null) {
			eClaimableEffectItemProvider = new EClaimableEffectItemProvider(this);
		}

		return eClaimableEffectItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.EExtendedNumericResourceDef} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EExtendedNumericResourceDefItemProvider eExtendedNumericResourceDefItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.EExtendedNumericResourceDef}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEExtendedNumericResourceDefAdapter() {
		if (eExtendedNumericResourceDefItemProvider == null) {
			eExtendedNumericResourceDefItemProvider = new EExtendedNumericResourceDefItemProvider(this);
		}

		return eExtendedNumericResourceDefItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.ENumericRequirement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ENumericRequirementItemProvider eNumericRequirementItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.ENumericRequirement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createENumericRequirementAdapter() {
		if (eNumericRequirementItemProvider == null) {
			eNumericRequirementItemProvider = new ENumericRequirementItemProvider(this);
		}

		return eNumericRequirementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.ENumericResourceDef} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ENumericResourceDefItemProvider eNumericResourceDefItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.ENumericResourceDef}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createENumericResourceDefAdapter() {
		if (eNumericResourceDefItemProvider == null) {
			eNumericResourceDefItemProvider = new ENumericResourceDefItemProvider(this);
		}

		return eNumericResourceDefItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.EResourceDef} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EResourceDefItemProvider eResourceDefItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.EResourceDef}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEResourceDefAdapter() {
		if (eResourceDefItemProvider == null) {
			eResourceDefItemProvider = new EResourceDefItemProvider(this);
		}

		return eResourceDefItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.ERule} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ERuleItemProvider eRuleItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.ERule}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createERuleAdapter() {
		if (eRuleItemProvider == null) {
			eRuleItemProvider = new ERuleItemProvider(this);
		}

		return eRuleItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.ESharableResourceDef} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ESharableResourceDefItemProvider eSharableResourceDefItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.ESharableResourceDef}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createESharableResourceDefAdapter() {
		if (eSharableResourceDefItemProvider == null) {
			eSharableResourceDefItemProvider = new ESharableResourceDefItemProvider(this);
		}

		return eSharableResourceDefItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.ESharableResourceEffect} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ESharableResourceEffectItemProvider eSharableResourceEffectItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.ESharableResourceEffect}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createESharableResourceEffectAdapter() {
		if (eSharableResourceEffectItemProvider == null) {
			eSharableResourceEffectItemProvider = new ESharableResourceEffectItemProvider(this);
		}

		return eSharableResourceEffectItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.EStateResourceDef} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EStateResourceDefItemProvider eStateResourceDefItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.EStateResourceDef}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEStateResourceDefAdapter() {
		if (eStateResourceDefItemProvider == null) {
			eStateResourceDefItemProvider = new EStateResourceDefItemProvider(this);
		}

		return eStateResourceDefItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.ESummaryResourceDef} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ESummaryResourceDefItemProvider eSummaryResourceDefItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.ESummaryResourceDef}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createESummaryResourceDefAdapter() {
		if (eSummaryResourceDefItemProvider == null) {
			eSummaryResourceDefItemProvider = new ESummaryResourceDefItemProvider(this);
		}

		return eSummaryResourceDefItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.ObjectDef} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ObjectDefItemProvider objectDefItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.ObjectDef}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createObjectDefAdapter() {
		if (objectDefItemProvider == null) {
			objectDefItemProvider = new ObjectDefItemProvider(this);
		}

		return objectDefItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.EStateRequirement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EStateRequirementItemProvider eStateRequirementItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.EStateRequirement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEStateRequirementAdapter() {
		if (eStateRequirementItemProvider == null) {
			eStateRequirementItemProvider = new EStateRequirementItemProvider(this);
		}

		return eStateRequirementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.ENumericResourceEffect} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ENumericResourceEffectItemProvider eNumericResourceEffectItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.ENumericResourceEffect}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createENumericResourceEffectAdapter() {
		if (eNumericResourceEffectItemProvider == null) {
			eNumericResourceEffectItemProvider = new ENumericResourceEffectItemProvider(this);
		}

		return eNumericResourceEffectItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.EStateResourceEffect} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EStateResourceEffectItemProvider eStateResourceEffectItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.EStateResourceEffect}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEStateResourceEffectAdapter() {
		if (eStateResourceEffectItemProvider == null) {
			eStateResourceEffectItemProvider = new EStateResourceEffectItemProvider(this);
		}

		return eStateResourceEffectItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link gov.nasa.ensemble.dictionary.ESubActivity} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ESubActivityItemProvider eSubActivityItemProvider;

	/**
	 * This creates an adapter for a {@link gov.nasa.ensemble.dictionary.ESubActivity}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createESubActivityAdapter() {
		if (eSubActivityItemProvider == null) {
			eSubActivityItemProvider = new ESubActivityItemProvider(this);
		}

		return eSubActivityItemProvider;
	}

	/**
	 * This returns the root adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public ComposeableAdapterFactory getRootAdapterFactory() {
		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
	}

	/**
	 * This sets the composed adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
		this.parentAdapterFactory = parentAdapterFactory;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean isFactoryForType(Object type) {
		return supportedTypes.contains(type) || super.isFactoryForType(type);
	}

	/**
	 * This implementation substitutes the factory itself as the key for the adapter.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter adapt(Notifier notifier, Object type) {
		return super.adapt(notifier, this);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object adapt(Object object, Object type) {
		if (isFactoryForType(type)) {
			Object adapter = super.adapt(object, type);
			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
				return adapter;
			}
		}

		return null;
	}

	/**
	 * This adds a listener.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void addListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.addListener(notifyChangedListener);
	}

	/**
	 * This removes a listener.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void removeListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.removeListener(notifyChangedListener);
	}

	/**
	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void fireNotifyChanged(Notification notification) {
		changeNotifier.fireNotifyChanged(notification);

		if (parentAdapterFactory != null) {
			parentAdapterFactory.fireNotifyChanged(notification);
		}
	}

	/**
	 * This disposes all of the item providers created by this factory. 
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void dispose() {
		if (eActivityDefItemProvider != null) eActivityDefItemProvider.dispose();
		if (eActivityDictionaryItemProvider != null) eActivityDictionaryItemProvider.dispose();
		if (eActivityRequirementItemProvider != null) eActivityRequirementItemProvider.dispose();
		if (eActivityGroupDefItemProvider != null) eActivityGroupDefItemProvider.dispose();
		if (eAttributeParameterItemProvider != null) eAttributeParameterItemProvider.dispose();
		if (eChoiceItemProvider != null) eChoiceItemProvider.dispose();
		if (eClaimableResourceDefItemProvider != null) eClaimableResourceDefItemProvider.dispose();
		if (eClaimableEffectItemProvider != null) eClaimableEffectItemProvider.dispose();
		if (eExtendedNumericResourceDefItemProvider != null) eExtendedNumericResourceDefItemProvider.dispose();
		if (eNumericRequirementItemProvider != null) eNumericRequirementItemProvider.dispose();
		if (eNumericResourceDefItemProvider != null) eNumericResourceDefItemProvider.dispose();
		if (eNumericResourceEffectItemProvider != null) eNumericResourceEffectItemProvider.dispose();
		if (eReferenceParameterItemProvider != null) eReferenceParameterItemProvider.dispose();
		if (eResourceDefItemProvider != null) eResourceDefItemProvider.dispose();
		if (eRuleItemProvider != null) eRuleItemProvider.dispose();
		if (eSharableResourceDefItemProvider != null) eSharableResourceDefItemProvider.dispose();
		if (eSharableResourceEffectItemProvider != null) eSharableResourceEffectItemProvider.dispose();
		if (eStateRequirementItemProvider != null) eStateRequirementItemProvider.dispose();
		if (eStateResourceDefItemProvider != null) eStateResourceDefItemProvider.dispose();
		if (eStateResourceEffectItemProvider != null) eStateResourceEffectItemProvider.dispose();
		if (eSubActivityItemProvider != null) eSubActivityItemProvider.dispose();
		if (eSummaryResourceDefItemProvider != null) eSummaryResourceDefItemProvider.dispose();
		if (objectDefItemProvider != null) objectDefItemProvider.dispose();
	}

}
